/*抽象类实现接口功能，每个功能有自己的抽象函数*/


#ifndef API_H
#define API_H

#include<QByteArray>
#include <QObject>
#include "model.h"

class Api:public QObject
{
    Q_OBJECT

public:
/*****前端请求获取 有回复*****/
    //requestState
    //
    //  @Desc:获取状态信息
    //  @param:
    virtual QByteArray requestState() = 0;

    //requestBattery
    //
    //  @Desc:获取电量信息
    //  @param:
    virtual QByteArray requestBattery() = 0;

    //requestSearchDataApi
    //
    //  @Desc:请求指定分组和靶号的数据
    virtual QByteArray requestSearchDataApi(int groupNumber, int addr, const QString& time) = 0;

    //sendHoles
    //
    //  @Desc:请求靶标子弹数据
//    virtual QByteArray sendHoles(int msg,int group_number) = 0;

/*****控制指令  无回复********/
    //sendDateChange
    //
    //@Desc:发送日期
    virtual QByteArray sendDateChange(QString time) = 0;

    virtual QByteArray sendAddrAndGroupnumber(int addr,int groupnumber) = 0;


    virtual QByteArray sendUporDownmsg(int code) = 0;

    //sendGroupNumber
    //
    //  @Desc:发送分组信息
    //  @param: groupNumber
    virtual QByteArray sendGroupNumber(int groupNumber) = 0;

    //sendYuanXin
    //
    //  @Desc:发送原新编码
    //  @param:old_addr new_addr
    virtual QByteArray sendYuanXin(int old_addr, int new_addr) = 0;

    //sendBegin
    //  @Desc:开始校准
    //  @param:flag
    virtual QByteArray sendBegin(int flag) = 0;

    //sendOver
    //
    //  @Desc:结束校准
    //  @param:flag
    virtual QByteArray sendOver(int flag) = 0;

    //requestClearAll
    //
    //  @Desc:清除全部
    virtual QByteArray requestClearAll() = 0;

    //requestClearOnly
    //
    //  @Desc:清除单个
    virtual QByteArray requestClearOnly(int index2) = 0;

    virtual QByteArray sendId(int addr) = 0;

    virtual QByteArray bindInfo(int addr,const QString& name,const QString& idCard) = 0;

    //sendSearchData
    //
    //  @Desc:查找数据（数据库）
    //  @param:fenZu    baHao   time
//    virtual QByteArray sendSearchData(int fenZu, int baHao, const QString& time) = 0;



/****校准指令****/

    virtual QByteArray sendXandY(int addr,int x,int y) = 0;

/****后端给前端发*****/
   //pushTargetStateInfoApi
   //
   //   @Desc:后端获取状态信息
    virtual QByteArray pushTargetStateInfoApi() = 0;

    //pushTargetVoltageInfoApi
    //
    //  @Desc:后端获取电量信息
    virtual QByteArray pushTargetVoltageInfoApi() = 0;

    //后端发指定分组和靶号的数据
    virtual QByteArray pushSearchDateApi() = 0;

    //currentTargetBullet
    //
    //  @Desc:当前靶子弹数据
    //  @param:oneTaregtBullet
    virtual QByteArray currentTargetBullet(const OneTaregtBullet& oneTaregtBullet) = 0;






};

#endif // API_H

